An error correction code (ECC) may be used to protect data or recover from errors related to a medium via which the data was either transmitted or stored. For example, data may be encoded using an ECC to possibly recover from errors associated with wired/wireless communications, storage to memory devices/mediums or optical readers such as 2-dimensional bar code readers. ECC encoded data received by either reading data from a memory device/medium or barcode or received via a wired/wireless communication channel may be able to identify and correct a given number of errors. Typically, ECC encoded data may include codewords having a combination of data and redundant or parity bits or symbols. Depending on the size of a given codeword and the level of protection desired, codewords may vary in size and also may vary in the complexity of algorithms used to recover from possible errors.
Errors in a given period of time may be referred to as a bit error rate (BER). Technological advances in digital signal transmissions that have greatly increased data transmission speeds have also increased the possibility of a higher BER. Also, memory storage/medium technologies have resulted in increasingly denser storage that may also lead to an increased possibility of a higher BER. In order to reduce the impacts of possibly higher BERs, data may be encoded in larger codewords. These larger codewords may have more parity bits. Large codewords with more parity bits may require complex algorithms implemented with increasing amounts of computing resources. It is with respect to these and other challenges that the embodiments described herein are needed.